/**
 * 认证工具类
 */

// 用户信息存储key
const USER_INFO_KEY = 'userInfo'
const TOKEN_KEY = 'token'

/**
 * 获取用户标识
 * 支持手机号登录(id)和微信授权登录(pkId)
 */
export function getUserIdentifier() {
  try {
    const userInfo = uni.getStorageSync(USER_INFO_KEY)
    console.log('当前用户信息:', userInfo)
    
    if (!userInfo) {
      console.error('未找到用户信息')
      return null
    }
    
    // 优先使用 id，如果没有则使用 pkId
    const userId = userInfo.id || userInfo.pkId
    console.log('获取到的用户标识:', userId)
    
    if (!userId) {
      console.error('用户信息中没有有效的标识')
      return null
    }
    
    return userId
  } catch (error) {
    console.error('获取用户标识失败:', error)
    return null
  }
}

/**
 * 获取用户token
 */
export function getToken() {
  try {
    return uni.getStorageSync(TOKEN_KEY)
  } catch (error) {
    console.error('获取token失败:', error)
    return null
  }
}

/**
 * 保存用户信息
 * @param {Object} userInfo 用户信息对象
 */
export function setUserInfo(userInfo) {
  if (!userInfo) return
  try {
    uni.setStorageSync(USER_INFO_KEY, userInfo)
  } catch (error) {
    console.error('保存用户信息失败:', error)
  }
}

/**
 * 保存token
 * @param {string} token 
 */
export function setToken(token) {
  if (!token) return
  try {
    uni.setStorageSync(TOKEN_KEY, token)
  } catch (error) {
    console.error('保存token失败:', error)
  }
}

/**
 * 清除用户认证信息
 */
export function clearAuth() {
  try {
    uni.removeStorageSync(USER_INFO_KEY)
    uni.removeStorageSync(TOKEN_KEY)
  } catch (error) {
    console.error('清除认证信息失败:', error)
  }
}

/**
 * 检查是否已登录
 */
export function isLoggedIn() {
  return !!(getToken() && getUserIdentifier())
}

/**
 * 获取完整的用户信息
 */
export function getUserInfo() {
  try {
    return uni.getStorageSync(USER_INFO_KEY)
  } catch (error) {
    console.error('获取用户信息失败:', error)
    return null
  }
}

export default {
  getUserIdentifier,
  getToken,
  setUserInfo,
  setToken,
  clearAuth,
  isLoggedIn,
  getUserInfo
} 